package com.ktgj.service.mapper;

import com.ktgj.service.domain.*;
import com.ktgj.service.domain.vo.TmpViphallVo;
import com.ktgj.service.domain.vo.VipHallVipChannelPrice;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 贵宾厅Mapper接口
 * 
 * @author ruoyi
 * @date 2021-09-03
 */
@Repository
public interface ViphallMapper 
{
    /**
     * 查询贵宾厅
     * 
     * @param viphallId 贵宾厅ID
     * @return 贵宾厅
     */
    public Viphall selectViphallById(Long viphallId);

    /**
     * 查询贵宾厅列表
     * 
     * @param viphall 贵宾厅
     * @return 贵宾厅集合
     */
    public List<Viphall> selectViphallList(Viphall viphall);

    public List<Viphall> selectViphallLists(Viphall viphall);

    /**
     * 新增贵宾厅
     * 
     * @param viphall 贵宾厅
     * @return 结果
     */
    public int insertViphall(Viphall viphall);

    /**
     * 修改贵宾厅
     * 
     * @param viphall 贵宾厅
     * @return 结果
     */
    public int updateViphall(Viphall viphall);

    /**
     * 删除贵宾厅
     * 
     * @param viphallId 贵宾厅ID
     * @return 结果
     */
    public int deleteViphallById(Long viphallId);

    /**
     * 批量删除贵宾厅
     * 
     * @param viphallIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteViphallByIds(Long[] viphallIds);

    /**
     * 根据地址查询贵宾厅
     * @param viphallVo
     * @return
     */
    public List<ViphallVo> queryAddress(ViphallVo viphallVo);

    /**
     * 通过id查询标签名称
     */
    public List<KtserviceViphallTag> selectKtserviceViphallTagByIdToTagName(Long viphallId);

    /**
     * 根据贵宾厅ID查询贵宾厅设施
     */
    public List<KtserviceViphallAuxtype> selectKtserviceViphalllAuxtypeByAuxtype(Long viphallId);

    /**
     * 根据贵宾厅ID展示贵宾厅服务详情页
     * @param viphallId
     * @return
     */
    public Viphall selectContraceViphall(Long viphallId);

    /**
     * 通过当前选择的机场三字码推荐贵宾厅
     */
    public List<Viphall> queryAirportCode(String airportCode);

    /**
     * 通过当前选择的机场三字码推荐贵宾厅服务列表
     */
    public List<ViphallList> queryAirportCodeList(String airportCode);

    /**
     * 贵宾厅服务详情页
     */
    public Viphall queryViphallId(Long viphallId);

     /*** 获取所有列表
     * @return
     */
    List<Viphall> getAll();

    /**
     * 通过当前贵宾厅id获取贵宾厅联系电话
     */
    public String selectVipHallPhoneById(Long viphallId);

    /**
     * 根据机场三字码查询
     * */
    public int selectVipHallVoByAirportCode(String airportCode);

    /**
     * 常用服务
     * @param customerId
     * @return
     */
    public List<ViphallCommon> commonServices(Long customerId);

    /**
     * 定制行程用
     * @param viphallId
     * @return
     */
    public Viphall queryViphallByViphallId(Long viphallId);

    /**
     * 根据主键查询贵宾厅信息
     * */
    public Viphall viphall(Long viphallId);

    /**
     * 根据id查询贵宾厅价格
     * @param id
     * @return
     */
    public ContractLinkViphallPrice selectVipHallPrice(Long id);

    /**
     * 贵宾厅基础列表
     * */
    public List<Viphall> viphallList(TmpViphallVo tmpViphallVo);

    /**
     * 删除贵宾厅信息
     * */
    public int delViphallVo(Long id);
}
